Skip to main content
This forum is closed to new posts and responses. Individual names altered for privacy purposes. The information contained in this website is provided for informational purposes only and should not be construed as a forum for customer support requests. Any customer support requests should be directed to the official HCL customer support channels below:

HCL Software Customer Support Portal for U.S. Federal Government clients
HCL Software Customer Support Portal

HCL Notes/Domino 8.5 Forum (includes Notes Traveler)

HCL Notes/Domino 8.5 Forum (includes Notes Traveler)

Previous Next

NSF versus a relational DB

Add these requirements to the "employee" example you gave:

- granular field-level security to access certian employee-specific data

- replication (especially offline)

- each employee has a variable number of user-defined fields for tracking metadata


...and all of a sudden NSF is much more attractive. Read my blog entries -- there is a lot that you can build into Notes (though, yes, it would be nice if it was supported natively) that makes it behave more like a true relational database.

In my experience it's much harder to make a relational database as flexible as NSF. IBM learned this the hard way. After years of trying to migrate NSF to DB2 (NSF<>DB2 was a step towards that final destination) IBM decided to quit doing it.

Keep in mind that IBM has said they are no longer moving forward on enhancing NSF/DB2, but they simultaneously said that they ARE moving forward on enhancing NSF. And they know that people want relational-type capabilities.

I'll reiterate from my blog about the main relational capabilities that people tend to want in NSFs (my current thoughts in bold). Bottom line: IBM could probably address quite a few of these concerns, and perhaps they will, or already are.

      1.  SQL queries - This has been somewhat doable for years with NotesSQL, and now with NSFDB2.  It needs to become a core part of the product. It could, with more effort from IBM. With the move to Javascript as a primary language, I wouldn't be shocked if IBM implemented SQL as a major query language.

      2.  JOIN capabilities - This is partially addressed with #1, and you can write backend code or use XPages in 8.5 to do the UI-equivalent but again, indexing speed is key.  There is currently NO way to *store* the index that results of a JOIN -- at least not without NSFDB2 and again, it needs to become a core part of the product.  The lack of JOIN capabilities is really the main architectural disadvantage of NSF (besides just getting big as we've discussed).  There has been a *tiny* bit of progress here in 8.0 with the new NotesDocumentCollection.Intersect() methods and few others. This might suddenly become possible if view index storage and contention was relieved by moving indexes outside of the NSF (commented on my blog). 

      3.  Enforcing Referential integrity - If a doc is "dependent" on another doc, not much is keeping you from deleting the 2nd doc, therefore causing an invalid relationship in the database.  This would likely be a lot of work, and when taking replication and doc security into account I'm not even sure it's completely doable.  But for many applications this is a "nice to have" that can be addressed in other ways and not an absolute requirement at the db level.

       4.  Transactional model - IMHO, NSF can't really go there while maintaining it's current capabilities, and this would be the #1 reason to stick with a relational database.  People don't enjoy replication/save conflicts in their payment systems.  :-) If you really, really needed this, you could code your own transaction-esque model, too.


Feedback response number ECBS7NVNEN created by ~Dana Elfreekony on 02/02/2009

DB2NSF replacement (~Judy Destookon... 29.Jan.09)
. . Does this mean that DB2 integration... (~Elizabeth Cish... 29.Jan.09)
. . . . . . xpages can incorporate DB2 access (Roland Reddekop... 2.Feb.09)
. . . . . . . . . . Toy or Trojan? (Roland Reddekop... 2.Feb.09)
. . NSFDB2 plans (~Tate Nonkizenl... 29.Jan.09)
. . . . I would suggest that you didn't tal... (~Dana Chulumarf... 29.Jan.09)
. . . . I need View Contention to go away (~Chris Bubfreep... 29.Jan.09)
. . . . . . Writing out to RDBMS (~Dana Chulumarf... 29.Jan.09)
. . . . how would you handle huge #docs and... (~Tanita Asaboos... 29.Jan.09)
. . . . Domino is a repository (~Olga Asaponeso... 2.Feb.09)
. . . . . . Domino/Notes is really business wor... (~Isaac Quetnute... 20.Feb.09)
. . . . . . use the rigth design (Ioan Crisan 20.Feb.09)
. . . . the second Garnet move (~Judy Destookon... 29.Jan.09)
. . . . . . NSFDB2 support available until 2017... (~Tate Nonkizenl... 29.Jan.09)
. . . . . . . . Query views...but requesting which ... (~Nicole Minaber... 30.Jan.09)
. . . . . . . . . . use the agent trigger "when docs ar... (Ioan Crisan 20.Feb.09)
. . . . . . . . . . . . . . actually this one is (Ioan Crisan 24.Feb.09)
. . . . . . . . . . transactions (Pejman Parandi 2.Feb.09)
. . There's more discussion on NSF's po... (~Sanjay Quettum... 29.Jan.09)
. . . . the backend is poor (~Judy Destookon... 2.Feb.09)
. . . . . . Rating something as "Poor" is relat... (~Gus Chukikonyo... 2.Feb.09)
. . . . . . . . . . The idea has long history... (Vladimir Panov 3.Feb.09)
. . . . . . . . . . . . That's very interesting... (~Sanjay Quettum... 3.Feb.09)
. . . . . . . . NSF versus a relational DB (~Sanjay Quettum... 2.Feb.09)
. . . . . . . . . . YES WE CAN :)) (~Judy Destookon... 3.Feb.09)
. . . . . . . . simple applications need relational... (~Judy Destookon... 3.Feb.09)
. . . . . . . . . . LMAO (~Naomi Deskrote... 4.Feb.09)
. . . . . . . . . . . . obscured by clouds (~Judy Destookon... 5.Feb.09)
. . . . . . . . . . . . . . "Happy with what I already have" (~Naomi Deskrote... 7.Feb.09)
. . . . . . . . . . . . . . . . LMAO at "chasing with a pitchfork" (~Sanjay Quettum... 8.Feb.09)
. . . . . . . . . . . . . . . . dynamic queries, triggers ... (~Judy Destookon... 10.Feb.09)
. . . . . . . . . . . . . . . . . . Normalization (~Naomi Deskrote... 10.Feb.09)
. . . . . . . . . . . . . . . . . . . . pet store application (~Judy Destookon... 10.Feb.09)
. . . . . . . . . . . . . . . . . . . . . . Defining your own limitations (~Naomi Deskrote... 12.Feb.09)
. . . . . . . . . . . . . . . . . . . . . . . . eCommerce web sites (~Judy Destookon... 13.Feb.09)
. . . . . . . . . . . . . . . . . . . . . . . . . . I don't think you're clear on the m... (~Naomi Deskrote... 13.Feb.09)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . fact = market <eom> (~Judy Destookon... 13.Feb.09)
. . . . . . . . . . . . . . . . . . . . by the way (~Judy Destookon... 10.Feb.09)
. . . . . . . . . . Trivial (~Naomi Deskrote... 4.Feb.09)
. . . . . . . . . . . . db2nsf (~Judy Destookon... 5.Feb.09)
. . . . . . . . . . . . . . Agreed (~Sanjay Quettum... 5.Feb.09)
. . . . . . . . . . . . Resolving keys in a view (~Olga Asaponeso... 5.Feb.09)
. . . . . . . . . . . . . . Yesterday's complaint (~Naomi Deskrote... 7.Feb.09)
. . . . . . . . . . . . . . . . . . NSFDB2 helped Lotusscript programme... (Nathan T. Freem... 10.Feb.09)
. . . . . . . . . . . . . . . . . . . . . . pureXML (Pejman Parandi 10.Feb.09)
. . . . . . . . . . . . . . . . . . The query views work in all version... (Bruce Lill 24.Feb.09)




Printer-friendly

Search this forum

Member Tools


RSS Feeds

 RSS feedsRSS
All forum posts RSS
All main topics RSS